home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1991-06-13 | 4.0 KB | 189 lines |
- ' ------------------------
- ' | IBS Grabber v1.0 |
- ' | |
- ' | (c) W.H.Liu 1991 |
- ' ------------------------
- '
- Global VPOS,CUTVAR,IMAGENO
- VPOS=50
- CUTVAR=0
- IMAGENO=1
- SETUPSCREENS
- DISPLAYNO
- SETUPZONES
- Do
- Screen 1
- SETUPZONES
- If(Mouse Click=1 and Mouse Zone<>0)
- On Mouse Zone Proc SUBTRACT,PLUS,CUTBOB,PICLOAD,ABKLOAD,ABKLOAD,ABKSAVE,ICONSAVE,QUITIBS
- End If
- Screen 0
- CHECKKEYS
- If(CUTVAR=0 and Scin(X Mouse,Y Mouse)=0) Then DISPLAYBOB
- If(CUTVAR=1 and Scin(X Mouse,Y Mouse)=0 and Mouse Key=1) Then CUTBOB
- Loop
- Procedure SETUPSCREENS
- Colour 1,0
- Double Buffer
- Curs Off
- Flash Off
- Unpack 10 To 1
- End Proc
- Procedure SETUPZONES
- Reserve Zone 9
- ZY1=13
- ZY2=21
- Set Zone 1,11,ZY1 To 17,ZY2
- Set Zone 2,50,ZY1 To 56,ZY2
- Set Zone 3,69,ZY1 To 85,ZY2
- Set Zone 4,98,ZY1 To 126,ZY2
- Set Zone 5,139,ZY1 To 171,ZY2
- Set Zone 6,184,ZY1 To 215,ZY2
- Set Zone 7,228,ZY1 To 260,ZY2
- Set Zone 8,273,ZY1 To 309,ZY2
- Set Zone 9,0,0 To 319,8
- End Proc
- Procedure CHECKKEYS
- A$=Inkey$
- A=Scancode
- If A=69 Then Erase 1 : Erase 2 : IMAGENO=1 : DISPLAYNO
- If A=76 Then GOUP
- If A=77 Then GODOWN
- A=0
- End Proc
- Procedure GODOWN
- Add VPOS,5
- If VPOS>Screen Height+25 Then VPOS=Screen Height+25
- DISPLAYSCREEN
- End Proc
- Procedure GOUP
- Add VPOS,-5
- If VPOS<35 Then VPOS=35
- DISPLAYSCREEN
- End Proc
- Procedure DISPLAYSCREEN
- Screen Display 1,,VPOS,,
- End Proc
- Procedure DISPLAYBOB
- If IMAGENO<=Length(1)
- If Length(1)>0
- Hide
- While Scin(X Mouse,Y Mouse)=0
- Bob 1,X Screen(X Mouse),Y Screen(Y Mouse),IMAGENO
- CHECKKEYS
- Wend
- Bob Off
- Show
- End If
- End If
- End Proc
- Procedure SUBTRACT
- Dec IMAGENO
- If IMAGENO=0 Then IMAGENO=1 : Pop Proc
- DISPLAYNO
- End Proc
- Procedure DISPLAYNO
- Screen 1
- Ink 2
- Bar 22,13 To 45,21
- Ink 0
- Gr Writing 0
- Text 22,20,Right$("00"+Mid$(Str$(IMAGENO),2),3)
- Screen 0
- End Proc
- Procedure PLUS
- Inc IMAGENO
- If IMAGENO=1000 Then IMAGENO=999 : Pop Proc
- If IMAGENO-Length(1)=2 Then Dec IMAGENO : Pop Proc
- DISPLAYNO
- End Proc
- Procedure CUTON
- CUTVAR=1
- End Proc
- Procedure CUTBOB
- Screen Hide 1
- Screen 0
- While Mouse Click<>1
- X1=X Screen(X Mouse)
- Y1=Y Screen(Y Mouse)
- Wend
- If X1>Screen Width Then X1=Screen Width-1
- If Y1>Screen Height Then Y1=Screen Height-1
- If Y1<0 Then Y1=0
- Do
- X2=X Screen(X Mouse)
- Y2=Y Screen(Y Mouse)
- If X2>Screen Width Then X2=Screen Width-1
- If Y2>Screen Height Then Y2=Screen Height-1
- Gr Writing 3
- Ink 1
- Box X1,Y1 To X2,Y2
- Box X1,Y1 To X2,Y2
- Exit If Mouse Key<>1
- Loop
- If(X2>X1 and Y2>Y1)
- Get Bob 0,IMAGENO,X1,Y1 To X2,Y2
- Screen 1
- Screen Show 1
- PLUS
- Else
- Screen Show 1
- End If
- End Proc
- Procedure PICLOAD
- FILE$=Fsel$("","","Load an IFF picture")
- If FILE$="" Then Pop Proc
- If Exist(FILE$) Then Load Iff FILE$,0
- Double Buffer
- Screen To Front 1
- End Proc
- Procedure ABKLOAD
- If Mouse Zone=5
- FILE$=Fsel$("*.ABK","","Load a Sprite bank")
- CLEARVAR=1
- Else
- FILE$=Fsel$("*.ABK","","Append a Sprite bank")
- End If
- If FILE$="" Then Pop Proc
- Open In 1,FILE$
- If Input$(1,4)="AmSp"
- If CLEARVAR=1
- Erase 1
- IMAGENO=1
- CLEARVAR=0
- End If
- Load FILE$,1
- Screen 0
- Get Sprite Palette
- Screen 1
- DISPLAYNO
- End If
- Close 1
- End Proc
- Procedure ABKSAVE
- FILE$=Fsel$("*.ABK","","Save a Sprite bank")
- If FILE$="" Then Pop Proc
- Save FILE$,1
- End Proc
- Procedure ICONSAVE
- FILE$=Fsel$("*.ABK","","Save an Icon bank")
- If FILE$="" Then Pop Proc
- GFXTOICONS
- Save FILE$,2
- End Proc
- Procedure GFXTOICONS
- For I=1 To Length(1)
- BASE=Sprite Base(I)
- Screen Open 2,Deek(BASE)*16,Deek(BASE+2),2^Deek(BASE+4),Lowres
- Screen To Back 2
- Curs Off : Flash Off
- Get Sprite Palette
- Paste Bob 0,0,I
- Get Icon I,0,0 To Deek(BASE)*16,Deek(BASE+2)
- Next I
- Screen Close 2
- End Proc
- Procedure QUITIBS
- Screen Close 1
- End
- End Proc